Перейти к основному содержимому
Версия: 1.7.5

Архитектура программы

Программа построена по принципу микросервисной архитектуры и может быть разделена на основные сервисы и сервисы, работающие в зоне (подробнее про зоны см. разделе Руководства пользователя).

Каждый компонент программы представляет собой DEB-пакет, который размещен в контейнере. Таким образом, программа – это набор взаимодействующих между собой контейнеров, который может быть развернут в любой среде, содержащей Docker Engine, Docker Compose и СУБД.

Основные сервисы (Main services): включают компоненты: Core Service (WAS, EXS, Web UI, OpenBAO), Core Service Database, Asset Manager, Asset Manager Database, Reflector, Module registry.

Сервисы зоны (Zone services): Keeper, Keeper storage, Module.

Схематично архитектура программы приведена на рисунке 1.

![](./Рисунок 1 Архитектура программы.png "Рисунок 1 Архитектура программы")

Рисунок 1 Архитектура программы

Приведем описание сервисов и компонентов:

Core Service – основной сервис, отвечающий за бизнес-логику и предоставление API для web-интерфейса. Содержит функциональность по управлению и настройке модулей.

В составе Core Service выделены следующие компоненты:

  • WAS (Web Application Service) – компонент, реализующий основной функционал взаимодействия бэкенда (сервера) по REST API с UI и другими сервисами.
  • EXS (Executor Service) – компонент, отвечающий за выполнение автоправил и бизнес-логики.
  • Web UI – компонент, отвечающий за пользовательский интерфейс.
  • OpenBao – защищенное хранилище секретов.

Core Service Database – база данных, в которой хранятся данные сервисов WAS и EXS.

Asset Manager – сервис, отвечающий за примитивные операции с активами – вариации CRUD, обогащение, установка связей, простейшие фильтры.

Reflector – компонент, упрощающий взаимодействие ключевых сервисов с киперами в закрытых зонах.

Keeper – компонент, реализующий оркестрацию компонентов (module).

Keeper storage – хранилище данных, в котором хранится информация о модулях и их запусках.

Module – компонент, представленный в форме контейнера, выполняющий определенную функциональность по поиску ассетов или сбору данных об ассетах (хост, внешний адрес, учетная запись, сетевая служба, программное обеспечение, сеть, зона).

Module registry – хранилище (registry) образов контейнеров модулей.